import { loginAPI } from "@/api/user"
import { getToken, setToken, removeToken } from "@/utils/auth"
export default {
  // 命名空间
  namespaced: true,
  // 模块内的state写法：推荐是个函数写法，但写对象也行
  state: {
    token: getToken() || ''
  },
  mutations: {
    // 并没有递归调用，mutations中只有一种调用方法 store.commit('方法名',...)  没有 方法名() 这种调用方式
    setToken(state, newToken) {
      state.token = newToken
      setToken(newToken)
    },
    removeToken(state) {
      // 清空vuex中的token
      state.token = ''
      // 清空cookie中的token
      removeToken()
    }
  },
  actions: {
    async loginAction(store,data) {
      const res = await loginAPI(data)
      store.commit('setToken',res.data.token)
    }
  },
  getters: {},
}
